Representational State Transfer (REST) may be described as guidelines for creating web services. The REST service client application may be used to invoke Hypertext Transfer Protocol (HTTP)-based REST web services. To test REST service client applications, Quality Assurance (QA) engineers (or administrators) often need to rely on the real REST services provided by third party vendors. As an example, if a QA engineer needs to test a marketing application that invokes a particular vendor's marketing cloud services, the QA engineer needs to configure the application to be tested with the connections and services provided by the particular vendor. An Application Programming Interface (API) provides access to a software component by defining its operations, inputs, outputs, and underlying types. In the case of the REST step in the Extensible Markup Language (XML) stage, the QA engineer also needs to create and implement web services using Java® API for RESTful Web Services (JAX-RS) and then deploy those services on the application servers to perform the basic feature validations. (Java is a registered trademark of Oracle Corporation in the United States and/or other countries.)
It is often not suitable to create a large number of test cases. The QA engineer has to implement many web services on the application server, which is not an easy task and which is also very time-consuming.
There are many HTTP, HTTP Secure (HTTPS), Secure Sockets Layer (SSL), and authentication mechanisms that need to be tested. Often, average users do not have the skill sets to set up those security mechanisms without going through a long learning curve.
Relying on the third party services to test REST service client applications is not suitable for regression and performance tests. Typically, the regression tests are run several times per week to check code quality. The cost of invoking those third party services is based on the number of messages and sometime payload size. Relying on the third party services to test REST service client applications is also not suitable for the performance tests because the performance of the REST service client applications in those cases is largely dependent upon the internet connection, network traffic, and also how fast the third party services respond.